package org.example.day01;

import java.util.Scanner;

/**
 * @author zlxad
 * @version 1.0
 * @description: TODO +
 * 一个整数可以由连续的自然数之和来表示。给定一个整数，计算该整数有几种连续自然数之和的表达式，且打印出每种表达式。
 * @date 2024/3/11 15:22
 */
public class test018 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        printExpressions(T);
    }

    public static void printExpressions(int T) {
        int count = 0;

        for (int n = 1; n <= Math.sqrt(2 * T); n++) {
            // 计算首项
            int x = (2 * T - n * (n - 1)) / (2 * n);

            // 如果首项满足条件，输出表达式
            if (x * n + n * (n - 1) / 2 == T) {
                count++;
                System.out.print(T + "=");
                for (int i = 0; i < n; i++) {
                    System.out.print(x + i);
                    if (i != n - 1) {
                        System.out.print("+");
                    }
                }
                System.out.println();
            }
        }

        System.out.println("Result:" + count);
    }
}

